Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Практична робота № 5

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Практична робота
Предмет:
Криптологія

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра БІТ  Практична робота № 5 з навчальної дисципліни: “Прикладна криптологія” Львів – 2011 Завдання Написати програму мовою Сі, яка моделює роботу псевдовипадкових генераторів Фібоначчі на основі примітивних многочленів, заданих в таблиці. Провести дослідження величини періоду псевдовипадкової послідовності від типу примітивного многочлена. Написати програму мовою Сі, яка зашифровує-розшифровує текстовий файл (2 сторінки word- документу) за допомогою псевдовипадкової послідовності, сформованої генератором із найбільшим періодом. Таблиця № з/п F,(x) F2(x) F3(x) F4(x) F5(x) F6(x) F7(x) Fs(x)  2 (19,5,2,1,0) (151,9, 0) (31, 13,0) (49, 6, 5, 4, 0) (65, 18, 0) (157, 6,5,2, 0) (225,109, 0) (34, 7, 6, 5, 2, 1,0)   Блок-схема програми 1 Блок-схема програми 2 Текст програми 1 using System; using System.Collections; using System.IO; using System.Text; namespace lab5 { class Program { static void Main() { System.Text.Encoding a = Encoding.GetEncoding(1251); FileStream input = new FileStream("1.txt", FileMode.Open); StreamReader sr = new StreamReader(input); string s = ""; string vt = ""; while ((s = sr.ReadLine()) != null) { s += sr.ReadLine(); if (s != null) vt += s; } bool[] arre = new bool[vt.Length * 8]; byte[] encodedBytes = a.GetBytes(vt); int p = 0; for (int m = 0; m < encodedBytes.Length; m++) { BitArray ba = new BitArray(new byte[] { encodedBytes[m] }); ba.CopyTo(arre, p); p += 8; } int[] LFSR = new int[] { 19, 5, 2, 1, 0 }; bool[] poslid = new bool[1000000]; poslid = great(LFSR); //шифрування bool[] shufrtext = new bool[arre.Length]; int c = 0; for (int b = 0; b < shufrtext.Length; b++) { shufrtext[b] = XOR(arre[b], poslid[c]); c++; if (c == poslid.Length) c = 0; } //переведення в букви і вивід на екран int lich = 0, inten, lin = 0; bool[] vShufr = new bool[8]; byte[] Shufr = new byte[shufrtext.Length / 8]; for (int zx = 0; zx < shufrtext.Length; zx++) { vShufr[lich] = shufrtext[zx]; lich++; if (lich == 8) { Array.Reverse(vShufr); inten = To10(vShufr); Shufr[lin] = Convert.ToByte(inten); lich = 0; lin++; } } string shufrotext = a.GetString(Shufr); Console.WriteLine("Зашифроване повiдомлення: {0}", shufrotext); // РОЗШИФРОВУВАННЯ bool[] rozshufr = new bool[shufrtext.Length]; c = 0; for (int h = 0; h < shufrtext.Length; h++) { rozshufr[h] = XOR(shufrtext[h], poslid[c]); c++; if (c == poslid.Length) c = 0; } //переведення в букви і вивід на екран int lich1 = 0, inten1, lin1 = 0; bool[] vRozhufr = new bool[8]; byte[] Rozshufr = new byte[shufrtext.Length / 8]; for (int zx = 0; zx < shufrtext.Length; zx++) { vRozhufr[lich1] = rozshufr[zx]; lich1++; if (lich1 == 8) { Array.Reverse(vRozhufr); inten1 = To10(vRozhufr); Rozshufr[lin1] = Convert.ToByte(inten1); lich1 = 0; lin1++; } ...
Антиботан аватар за замовчуванням

22.05.2013 20:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини